﻿using System;
using System.Collections.Generic;
using System.Text;

namespace AlgorithmTest
{
    public class T_0001_ContainsDuplicate
    {
        // 存在重复元素

        // 给定一个整数数组，判断是否存在重复元素。
        // 如果存在一值在数组中出现至少两次，函数返回 true 。如果数组中每个元素都不相同，则返回 false 
        public void Test()
        {
            var nums = new int[] { 1, 2, 3, 4 };
            var flag = ContainsDuplicate(nums);
        }


        public bool ContainsDuplicate(int[] nums)
        {
            Array.Sort(nums);
            for (int i = 1; i < nums.Length; i++)
            {
                if (nums[i - 1] == nums[i])
                    return true;
            }
            return false;
        }

        public bool ContainsDuplicate2(int[] nums)
        {
            HashSet<int> hashSet = new HashSet<int>();
            for (int i = 0; i < nums.Length; i++)
            {
                if (!hashSet.Add(nums[i]))
                    return true;
            }
            return false;
        }
    }
}
